iT邦幫忙

2022 iThome 鐵人賽

DAY 8
0
AI & Data

【30天之新手學習筆記】PyTorch系列 第 8

Day 08 - 將張量轉移至GPU

  • 分享至 

  • xImage
  •  

前幾天的關於圖片資訊張量儲存的部分,我們只有提到在Day 03 的章節中提到它是被儲存於電腦的記憶體空間中,但事實上在前幾天的介紹中我們所提到的相關操作的張量其實都是儲存於電腦中CPU(中央處理器)的記憶體空間,但其實張量也可以儲存於GPU(圖形處理器,俗稱顯卡)的記憶體中,利用GPU的記憶體來儲存張量的好處在於要進行運算時,可進行大量平行且快速的運算.現在市面上主要的GPU廠商有三間分別為Nvidia,AMDintel,但由於PyTorch在支援CUDA的GPU上有較好的加速效果,所以運行下列程式時需注意電腦的相關設備.

直接將指定張量存於GPU

points_gpu = torch.tensor([1.0, 7.0], [3.0, 9.0], device='cuda')

將張量從CPU複製到GPU

points_gpu = points.to(device='cuda')

將張量存於指定的GPU

在電腦有一個以上GPU時,我們可以指定要將張量分配到哪個GPU,編號從0號開始.

points_gpu = points.to(device='cuda:1')

在GPU上操作張量的乘法

points = 3 * points
points_gpu = 3 * points.to(device='cuda')

points_gpu 張量並不會將值回傳CPU中. points_gpu 的計算主要有三個過程:

  1. 將張量的值複製到GPU中
  2. 在GPU中建立新的張量points_gpu
  3. 將計算結果傳回points_gpu

將GPU上張量的計算結果搬回CPU

points_cpu = points_gpu.to(device='cpu')

今天我的學習筆記中所提到的張量的轉移或許在簡單的專案中,將程式放在CPU或GPU中計算並沒有太大的差異,但只要專案變得夠大,那麼進行計算的時間就有可能差異個幾小時甚至於幾天之久,在進行進階的人工智慧相關學習有GPU會加速於模型的訓練,當然Google colab中所提供的免費GPU資源也讓我們在學習上方便許多,畢竟對於我們學生而言省錢就是王道哈哈哈.


參考資料:


上一篇
Day 07 - 圖片資料進行神經網路計算前的處理
下一篇
Day 09 - PyTorch自動計算梯度(autograd)
系列文
【30天之新手學習筆記】PyTorch30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言